#pragma once
#ifndef AFFECTS_H
#define AFFECTS_H
#include "spa_types.h"
#include <set>
#include <vector>

class Affects{
private:
	BOOLEAN FindAffectedHelper(PROG_LINE,VARINDEX);
public:
	Affects();
	~Affects();
	BOOLEAN GetAffects(STMT, STMT);
	BOOLEAN GetTransitiveAffects(STMT, STMT);
	STMT_ARRAY RetrieveAffectedAssignment(STMT);
	STMT_ARRAY RetrieveAffectingAssignment(STMT);
	STMT_ARRAY RetrieveTransitiveAffectedAssignment(STMT);
	STMT_ARRAY RetrieveTransitiveAffectingAssignment(STMT);
	STMT_ARRAY HelperGetTransitive(set<STMT>,int);
	STMT_ARRAY VectorToSet(vector<STMT>);
};
#endif